To date, a technique in which a position on a screen is designated by using an input device, and the input device is vibrated when a predetermined place is designated, has been known.
However, in the above-described conventional technique, occurrence or non-occurrence of vibration is merely selected according to the designated position, and virtual object movement is not perceived according to the vibration.
Therefore, an object of the exemplary embodiment is to provide an information processing system capable of allowing virtual object movement to be perceived according to vibration.
In order to attain the aforementioned object, the exemplary embodiment has the following configuration.
One aspect of the exemplary embodiment is an information processing system that includes an operation section, a vibration section, a movement calculation section, a waveform generation section, and an waveform output section. The vibration section is configured to vibrate according to an input signal representing a vibration waveform. The movement calculation section is configured to sequentially calculate a virtual movement of a virtual object, and change the movement of the virtual object according to an operation performed on the operation section. The waveform generation section is configured to generate a signal representing a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on calculation by the movement calculation section. The waveform output section is configured to output, to the vibration section, a signal representing a combined waveform obtained by a first vibration waveform and a second vibration waveform being combined with each other, in a case where a signal representing the second vibration waveform is generated by the waveform generation section when a signal representing the first vibration waveform is generated by the waveform generation section.
In the description herein, a “state of a movement of the virtual object” includes a state of a movement such as a speed, an acceleration, rotation, and the like of the virtual object. Further, a “state, of a movement of the virtual object, obtained when the virtual object is in contact with another object” means a state (speed, acceleration, rotation, and the like), of a movement of the virtual object, obtained when a state where the virtual object is in contact with another object is maintained. Further, a “state, of a movement of the virtual object, obtained when the virtual object comes into contact with another object” means a state, (speed, acceleration, rotation, and the like) of a movement of the virtual object (at the moment) when the virtual object contacts with another object.
Further, a “signal representing a vibration waveform” may be, for example, an amplitude and a frequency of the vibration waveform. A “signal representing a vibration waveform” may be a vibration waveform itself, or may be a signal that designates vibration pattern data representing the vibration waveform.
Further, “the first vibration waveform and the second vibration waveform are combined with each other” may mean that, for example, the total of amplitudes of the two vibration waveforms is obtained, and that, for example, an average of frequencies of the two vibration waveforms is obtained (the average may be a weighted average or unweighted average). Further, “the first vibration waveform and the second vibration waveform are combined with each other” may mean that, for example, the first vibration waveform and the second vibration waveform may be superposed on each other according to the superposition principle of wave.
In the above-described configuration, a plurality of vibrations generated by a virtual object and another object contacting with each other can be combined with each other, and various vibrations obtained by movement of an object can be realistically reproduced.
Further, an orientation/motion calculation section configured to calculate an orientation and/or a motion of the operation section may be further provided. The movement calculation section changes the movement of the virtual object based on the orientation and/or the motion of the operation section.
In the above-described configuration, the virtual object can be moved based on an orientation and/or a motion of the operation section.
Further, the operation section may include an inertial sensor. The orientation/motion calculation section may calculate the orientation and/or the motion of the operation section based on data from the inertial sensor.
In the above-described configuration, an orientation and/or a motion of the operation section can be calculated by the inertial sensor.
Further, the waveform generation section may generate a signal representing a vibration waveform based on a movement, of the virtual object, obtained when the virtual object is moving in a state where the virtual object is in contact with said another object.
In the above-described configuration, for example, vibration based on rolling of the virtual object can be generated when the virtual object is rolling on another object.
Further, the waveform generation section may generate, when a collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the collision.
In the above-described configuration, when a collision of the virtual object with another object occurs, vibration based on the collision can be generated.
Further, the waveform generation section may generate a signal representing a vibration waveform having an amplitude such that the higher a speed of the virtual object is, the greater the amplitude is.
In the above-described configuration, for example, in a case where the virtual object is moving in a state where the virtual object is in contact with another object, the higher the moving speed of the virtual object is, the more strongly the vibration section can be vibrated. Further, for example, in a case where the virtual object collides, the higher the speed at the collision is, the more strongly the vibration section can be vibrated.
Further, the waveform generation section may generate, when a collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the collision of the virtual object. The waveform output section may output a signal representing a combined waveform obtained by combining a vibration waveform based on the movement of the virtual object with a vibration waveform based on the collision of the virtual object.
In the above-described configuration, a vibration based on a movement of the virtual object and a vibration based on a collision of the virtual object can be combined with each other, and vibration can be realistically reproduced.
Further, the virtual object may include a virtual container object and at least one content object contained in the virtual container object. The movement calculation section may change a movement of the content object by changing an orientation and/or a motion of the virtual container object.
In the above-described configuration, the content object can be moved in the virtual container object, and vibration generated by the movement of the content object in the virtual container object can be reproduced.
Further, the content object may be a plurality of spherical objects. The waveform generation section may generate, when rolling of the plurality of spherical objects in the virtual container object occurs, a signal representing a vibration waveform based on the rolling of each spherical object, and generates, when collision of the plurality of spherical objects occurs, a signal representing a vibration waveform based on the collision of each spherical object.
In the above-described configuration, a plurality of spherical objects can be moved in the virtual container object, and vibration based on rolling of each spherical object and vibration based on collision of each spherical object can be combined with each other, and vibration obtained when a plurality of spherical objects are moved in the container can be reproduced.
Further, the content object may be a rectangular-parallelepiped-shaped object. The waveform generation section may generate, when collision of the rectangular-parallelepiped-shaped object with the virtual container object occurs, a signal representing a vibration waveform based on the collision.
In the above-described configuration, a vibration obtained when the rectangular-parallelepiped-shaped object is moved in the container can be reproduced.
Further, the content object may be a virtual point or grain. The waveform generation section may generate, when a movement of the content object in the virtual container object is performed, a signal representing a vibration waveform based on the movement.
In the above-described configuration, a vibration can be generated according to a movement of a virtual point or grain in the virtual container.
Further, the waveform output section may perform combination of a plurality of vibration waveforms with each other such that the number of the plurality of vibration waveforms is not greater than a predetermined upper limit number, and output, to the vibration section, a signal representing a combined waveform obtained through the combination.
In the above-described configuration, the upper limit can be set for the number of vibration waveforms to be combined.
Further, the information processing system may include an information processing apparatus and an operation device. The operation section and the vibration section may be provided in the operation device. The movement calculation section, the waveform generation section, and the waveform output section may be provided in the information processing apparatus. The information processing apparatus may receive an input from the operation section and transmit an output from the waveform output section to the operation device, through communication with the operation device.
In the above-described configuration, the information processing apparatus calculates a movement of the virtual object according to an operation performed on the operation device having the vibration section, and the operation device can be vibrated according to the result of calculation by the information processing apparatus.
Further, a signal output from the waveform output section may include an amplitude of a waveform per unit time or a difference in an amplitude of a waveform per unit time, and a frequency of the waveform per unit time or a difference in a frequency of the waveform per unit time.
In the above-described configuration, the information processing apparatus can transmit, to the operation device, an amplitude or a difference in an amplitude and a frequency or a difference in a frequency every unit time.
Further, the waveform generation section may generate, as the signal, data representing an amplitude and/or a frequency of vibration, and change the amplitude and/or the frequency in a case where the state of the movement of the virtual object changes when a signal representing a vibration waveform based on the state of the movement of the virtual object is generated.
In the above-described configuration, for example, when the vibration section is vibrating, an amplitude and/or a frequency of vibration of the vibration section can be changed according to an operation performed on the operation section, and an operation performed on the operation section can be reflected in real time.
Further, the movement calculation section may calculate a value representing a movement of the virtual object. A plurality of pieces of vibration pattern data representing the vibration waveform may be prepared. The waveform generation section may select any of the plurality of pieces of vibration pattern data according to the value, and generate a signal representing the vibration waveform, based on the selected vibration pattern data.
In the above-described configuration, any of a plurality of pieces of vibration pattern data can be selected according to the magnitude of a value (for example, the speed of the virtual object) representing the movement of the virtual object, and, for example, the vibration waveform can be changed according to the speed of the virtual object.
Further, the waveform generation section may generate, as the signal, data representing an amplitude and/or a frequency of vibration, and change the amplitude and/or the frequency according to the value.
In the above-described configuration, an amplitude and/or a frequency can be changed according to a value (for example, the speed of the virtual object) representing a movement of the virtual object.
Further, another aspect may be an information processing program executed by a computer of an information processing apparatus that vibrates a vibration section which vibrates according to an input signal representing a vibration waveform. The information processing program causes the computer to execute: a movement calculation step of sequentially calculating a virtual movement of a virtual object, and changing the movement of the virtual object according to an operation performed on an operation section; a waveform generation step of generating a signal representing a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on calculation in the movement calculation step; and a waveform output step of outputting, to the vibration section, a signal representing a combined waveform obtained by a first vibration waveform and a second vibration waveform being combined with each other, in a case where a signal representing the second vibration waveform is generated in the waveform generation step when a signal representing the first vibration waveform is generated in the waveform generation step.
Another aspect may be an information processing apparatus that executes the information processing program. Further, another aspect may be an information processing method performed by the information processing apparatus or the information processing system.
According to the exemplary embodiment, a virtual movement of a virtual object can be perceived by vibration.
These and other objects, features, aspects and advantages of the exemplary embodiments will become more apparent from the following detailed description of the exemplary embodiments when taken in conjunction with the accompanying drawings.